The present invention relates generally to methods and systems for backing up data and, more particularly, a self protecting storage method and system for backing up data using a self archiving log structured volume.
Conventional data backup is expensive, time consuming, and risky. Users spend much time and money installing, configuring, maintaining, and operating enterprise backup systems. Despite this effort, many users still lose valuable data because the needed file version or data base transaction has not been backed up or cannot be recovered in a reasonable amount of time.
Backed-up data is lost because of bandwidth constraints and administration errors. A conventional backup system competes for network and computational bandwidth that a user requires for other operations performed on a network. File activity and network traffic generated by a backup system can slow a network to a crawl. The need for around the clock networking operations has squeezed the time available for backup even further. Administrators must constantly trade off the risk of losing a file against data center response time. Backup system vendors have responded to this challenge by developing configuration options to wring the most performance out of the available bandwidth. These options provide some help to the bandwidth constraint problem, but increase the risk that a file may not be backed up at all due to an administrative error.
The risk of administrative error is compounded by the wide variety of computers, operating systems, software packages, file systems, and security domains that are present in a modern distributed network. Conventional backup systems have a client component that must abide by the native file systems"" network protocols and security policies. Different software must be installed and configured for each variation. High performance systems must be adapted to the host hardware increasing both administrative expense and risk of mis-configuration. On top of all this, backups must be scheduled over a network where services may not be available at the time that they are needed. Each one of these complications adds to the risk that a file may not be backed up frequently enough or not backed up at all.
A further problem with conventional backup methods and systems is that they only periodically backup data. Thus, unlike data significant events, backups occur at fixed intervals and much important data may not be copied at all during the backup periods. Recreating data lost in the interim between backup periods is expensive.
Accordingly, what is needed is a method and system for backing up data that greatly reduces administrative expense and greatly increases the likelihood that a needed file version is available.
Accordingly, it is an object of the present invention to provide a self protecting storage method and system for backing up data which uses a self archiving log structured volume.
It is another object of the present invention to provide a self archiving log structured volume operable for transferring to backing storage all changes made to a volume of data controlled by a storage application.
Terms for describing the present invention will be now be defined. A block is a fixed length of digital storage. A volume is a sequence of numbered blocks of a fixed maximum length. A block number identifies a particular block in the sequence. At a minimum, a volume must service read and write events.
A read event copies the data from a sequence of blocks identified by the originator of the event to storage controlled by the originator. A write event copies the data from the originator of the event to a sequence of blocks identified by the originator.
A storage application organizes the information on a volume and maintains consistent relationships among the blocks of the volume. A storage application or an agent cooperating with the storage application sends a synchronization event (synch) to the volume when the blocks of the volume have been placed in a consistent state.
A log is a time sequence of entries for all write events and synch events to a volume. Each write event entry includes the block number being written and the contents of the block being transferred. Each synch event entry contains the time of the event. A log entry for a write event is active until it is superseded by a later write event entry for the same block number. Afterwards the superceded entry is inactive.
A log structured volume performs the same services as an ordinary volume. It is composed of a log and an index that associates each volume block number with its corresponding active log entry. It satisfies write requests by adding an entry for the block to the end of the log and updating the index entry for the block number with the log location of the new active entry. It satisfies a read request for a particular block by looking up the location of the active entry for the requested block in the index and copying the data from the active entry to the originator. In accordance with the present invention, a self archiving log structured volume is a log structured volume that guarantees that all blocks referenced from its index are present in a finite length of its log.
Primary storage is a random-access digital medium, such as RAM or magnetic disk, where the log and index are stored, and from which the volume satisfies the read and write events initiated by the storage application.
A backing storage is an archival digital medium, such as magnetic tape, magnetic disk, optical tape, or optical disk. A segment is a continuous portion of the log that can be transferred from primary storage to the backing storage as a unit.
A snapshot of a volume is a record of the state of the volume at a selected point in the log. A snapshot of a log structured volume is reconstructed from the log by filling an empty index with block/log position relationships from the log entries to the index, scanning backwards in time from the selected point, and ignoring any duplicate entries for a block that occurred earlier in the log. If the selected point is a synch entry, the snapshot is in a consistent state with respect to the storage application that controls the volume. The scan terminates when the index contains an entry for all of the blocks of a volume or the scanner reaches the beginning of the log, whichever comes first.
In carrying out the above objects and other objects, the present invention provides a self archiving log structured volume. The self archiving log structured volume is a log structured volume that guarantees all blocks referenced from its index are present in a finite length of its log (reconstruction length) and moves inactive segments of the log to and from backing storage. When an addition to the log pushes an active log entry past the reconstruction length, the guarantee is maintained by copying the contents of this active entry to the beginning of the log and updating the index to reflect its new position. The log entry that was copied is now inactive and may be pushed past the reconstruction length and migrated to backing storage as described below. The amount of primary storage allotted to a self archiving log structured volume can be limited to a small multiple of the reconstruction length. After an inactive segment has been copied to the backing storage, the primary storage allotted to that segment becomes available to be added to the beginning of the log as a new current segment.
The self archiving log structured volume moves inactive segments of the log to a backing storage. When migrating to the backing storage, this volume may reduce the size of the log by ignoring earlier versions of a duplicated block within the segment. This action reduces the time granularity of the archived portions, but does not affect its consistency as long as segments are archived on synch event boundaries. Because synch events are captured in the log, the self archiving log structured volume may move the segments without the knowledge of the storage application that owns the volume and still maintain the integrity of the storage application.
Because of the reconstruction length guarantee and the means for implementing the guarantee, the stream of log entries in a self archiving log structured volume forms a sequence of snapshots of the state of the volume. A snapshot of a self archiving log structured volume is reconstructed the same way as for an ordinary log structured volume, except that the scan terminates when it exceeds the reconstruction length from the selected point in the log. A snapshot may start at any log entry. A consistent snapshot must start with a synch entry.
A snapshot sequence of a self archiving log structured volume is constructed for an interval (TN) from the beginning time (TB) to the ending time (TE) by adding to a snapshot of time TE all of the log entries occurring between TE and TB. To move forward in time from TB to an intermediate time (TI) the index is rebuilt by scanning the log forward in time from TB to TI, replacing any index entries that have been superceded. To move backwards in time from TI to TB, the log is scanned backward from TI to TB, replacing any index entries for blocks which were written earlier.
A recovery volume is an area of primary storage upon which a snapshot or snapshot sequence has been copied, consisting of a log and an index organized similarly as a self archiving log structured volume. To a storage application, a recovery volume is indistinguishable from the original volume of which it is an archival copy.
Further, in carrying out the above object and other objects, the present invention provides a data backup system for use with a server running a storage application that writes and read data blocks to and from a volume. The data backup system includes the self archiving log structured volume, primary storage, backing storage, a method for creating recovery volumes by copying snapshots and snapshot sequences from the log (whether from primary storage, backing storage, or both) to primary storage, and a method for manipulating the index of a recovery volume containing a snapshot sequence so as to move the view of the recovery volume apparent to the storage application forward and backward in time.
In summary, the self archiving log structured volume is operable to migrate inactive segments of the log to the backing storage. The self archiving log structured volume is operable to ensure that a volume can be reconstructed from a fixed number of log segments. The archiving process is asynchronous and concurrent with the normal operation of any storage application using the self archiving log structured volume as a data store.
The advantages of the present invention are numerous. Data is protected soon after it is written and all versions of a data object are recoverable. Further, data protection does not depend on operator action and data recovery is fast, easy, and reliable. Also, operations for protecting data do not contend with applications for time or resources.
The above object and other objects, features, and advantages of the present invention are readily apparent from the following detailed description of the best mode for carrying out the present invention when taken in connection with the accompanying drawings.